package com.ysstech.etfmanage.enums;

import java.util.Arrays;
import java.util.Objects;

import com.ysstech.common.enums.BaseEnum;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 系统常量
 *
 * @author lsl
 */
@Getter
@AllArgsConstructor
public enum EtfManageEnum implements BaseEnum<String> {

    ETF_AMOUNT_SCALE("0", "数量保留位数"),
    ETF_MONEY_SCALE("2", "金额保留位数"),
    ETF_MOVING_WEIGHTED_SCALE("8", "移动加权保留位数"),
    ETF_STOCKHOLDER_CODE("*", "汇总数据的股东代码"),
    ETF_PURCHASE("SG", "申购"),
    ETF_REDEMPTION("SH", "赎回"),
    ETF_BUY("B", "待买"),
    ETF_SELL("S", "待卖"),
    ETF_MUST("M", "必须"),
    ETF_FILL_NETTING_CODE("0", "轧差补票类型"),
    ETF_FILL_PLAIN_CODE("1", "普通补票类型"),
    ETF_FILL_FORCE_CODE("2", "强制补票类型"),

    ETF_CLEAR_CODE_YES("Y", "清算完成"),
    ETF_CLEAR_CODE_NO("N", "清算未完成"),

    ETF_MODE_CODE("ETF_MODE_CODE", "etf模型  股票，债券，期货"),
    ETF_TYPE_CODE("ETF_TYPE_CODE", "etf类型 单市场，跨市场，集中申购"),
    ETF_MARKET_CODE("ETF_MARKET_CODE", "etf类型 单市场，跨市场，集中申购"),
    ETF_RENEWTYPE_CODE("ETF_RENEWTYPE_CODE", "etf台账更新方式");


    private final String code;
    private final String desc;

    public static EtfManageEnum getEnum(String code) {
        return Arrays.stream(values()).filter(b -> Objects.equals(b.code, code)).findFirst().orElse(null);
    }

    public static String getEnumDesc(String code) {
        EtfManageEnum e = getEnum(code);
        return e != null ? e.desc : null;
    }
}
